package com.vviton.zyhj.cors;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.vviton.zyhj.common.utils.DateUtils;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.utils.page.Page;
import com.vviton.zyhj.common.view.ParamJfjy;
import com.vviton.zyhj.common.view.ParamJfxxList;
import com.vviton.zyhj.common.view.ViewCzzLvZyhj;
import com.vviton.zyhj.common.view.ViewJfmxZyhj;
import com.vviton.zyhj.common.view.ViewJfxx;
import com.vviton.zyhj.common.view.ViewJfxxList;
import com.vviton.zyhj.content.CommonConstants;
import com.wdcloud.opcenter.common.utils.ErrorBean;
import com.wdcloud.opcenter.integral.provider.CzzglCorsService;
import com.wdcloud.opcenter.integral.provider.JfglCorsService;
import com.wdcloud.opcenter.integral.view.JfcxView;
import com.wdcloud.opcenter.integral.view.ParmJfjy;
import com.wdcloud.opcenter.integral.view.ParmTYyxtHyglHyjfhqxxb;
import com.wdcloud.opcenter.integral.view.ParmTYyxtHyglHyjfzcxxb;
import com.wdcloud.opcenter.integral.view.ParmTYyxtJfglHzfjfhqxxb;
import com.wdcloud.opcenter.integral.view.ParmTYyxtJfglHzfjfzcxxb;
import com.wdcloud.opcenter.integral.view.ViewJfmx;
import com.wdcloud.opcenter.integral.view.ViewTYyxtHyglHyjfhqxxb;
import com.wdcloud.opcenter.integral.view.ViewTYyxtHyglHyjfzcxxb;
import com.wdcloud.opcenter.integral.view.ViewTYyxtJfglHzfjfhqxxb;
import com.wdcloud.opcenter.integral.view.ViewTYyxtJfglHzfjfzcxxb;
import com.wdcloud.opcenter.integral.view.czz.ViewCzzLv;
import com.wdcloud.opcenter.integral.view.jfgl.ParamJfglxx;
import com.wdcloud.opcenter.integral.view.jfgl.ViewJftjar;
import com.wdcloud.opcenter.integral.view.jfgl.Viewjftjaxw;

/**
 * ClassName: JfglCors <br/>
 * Function: 积分管理. <br/>
 * Date: 2016年11月23日 上午10:19:03 <br/>
 *
 * @author zhucb
 * @version 1.0
 * @since JDK 1.7
 */
@Component
public class JfglCors {

    /** 积分管理CorsService */
    @Autowired
    private JfglCorsService zwjfglCorsService;

    /** 成长值管理跨库 ***/
    @Autowired
    private CzzglCorsService czzglCorsService;

    /**
     *
     * getYhsyjf,(根据用户类型和账号获取用户剩余积分). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月16日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月16日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param yhlx 用户类型（0-用户 1-合作方）
     * @param zh 账号
     * @return 用户剩余积分
     * @since JDK 1.7
     */
    public Integer getYhsyjf(String yhlx, String zh) {
        int syjf = 0;

        JfcxView jfcxView = zwjfglCorsService.getIntegralByZh(zh, yhlx);

        if (jfcxView != null) {
            ViewJfxx viewJfxx = new ViewJfxx();
            CommonConstants.copyProperties(viewJfxx, jfcxView);
            syjf = viewJfxx.getJfye();
        }
        return syjf;
    }

    /**
     *
     * insertJfjy,(调用积分交易接口处理分值入账信息). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月24日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月24日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param paramJfjy 积分交易参数
     * @return 是否成功和入账分值
     * @since JDK 1.7
     */
    public ResultJson insertJfjy(ParamJfjy paramJfjy) {

        ParmJfjy parmJfjy = packParmJfjy(paramJfjy);
        com.wdcloud.opcenter.common.utils.ResultJson result = zwjfglCorsService.insertYjxx(parmJfjy);
        ResultJson resultJson = new ResultJson();
        CommonConstants.copyProperties(resultJson, result);
        return resultJson;
    }

    /**
     *
     * insertJfjyBatch,(调用批量积分交易接口). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年5月6日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年5月6日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param paramJfjyList 积分交易参数list
     * @return List<ResultJson>
     * @since JDK 1.7
     */
    public List<ResultJson> insertJfjyBatch(List<ParamJfjy> paramJfjyList) {
        List<ParmJfjy> list = new ArrayList<ParmJfjy>();
        for (ParamJfjy paramJfjy : paramJfjyList) {
            ParmJfjy parmJfjy = packParmJfjy(paramJfjy);
            list.add(parmJfjy);
        }
        List<com.wdcloud.opcenter.common.utils.ResultJson> resultList = zwjfglCorsService.plJfyj(list);

        List<ResultJson> resultJsonList = new ArrayList<ResultJson>();
        for (com.wdcloud.opcenter.common.utils.ResultJson result : resultList) {
            ResultJson resultJson = new ResultJson();
            CommonConstants.copyProperties(resultJson, result);
            resultJsonList.add(resultJson);
        }
        return resultJsonList;
    }

    /**
     *
     * packParmJfjy,(封装调用积分交易接口需要的参数). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月24日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月24日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param paramJfjy 积分交易参数
     * @return 封装之后的参数
     * @since JDK 1.7
     */
    private ParmJfjy packParmJfjy(ParamJfjy paramJfjy) {

        ParmJfjy parmJfjy = new ParmJfjy();
        parmJfjy.setHqzhlx(paramJfjy.getHqzhlx());
        parmJfjy.setHqzh(paramJfjy.getHqzh());
        parmJfjy.setHqmc(paramJfjy.getHqmc());
        parmJfjy.setHqxw(paramJfjy.getHqxw());
        parmJfjy.setJyfz(paramJfjy.getJyfz());
        parmJfjy.setZcywId(paramJfjy.getZcywId());
        parmJfjy.setZczhlx(paramJfjy.getZczhlx());
        parmJfjy.setZczh(paramJfjy.getZczh());
        parmJfjy.setZcmc(paramJfjy.getZcmc());
        parmJfjy.setZcxw(paramJfjy.getZcxw());
        parmJfjy.setBz(paramJfjy.getBz());
        parmJfjy.setNc(paramJfjy.getNc());
        parmJfjy.setHzfmc(paramJfjy.getHzfmc());
        parmJfjy.setNxywId(paramJfjy.getNxywId());
        parmJfjy.setZcjfhdbh(paramJfjy.getZcjfhdid());
        return parmJfjy;
    }

    /**
     * getHqjfxxList,跨库（积分平台）获取积分获取明细. <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年11月28日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年11月28日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 传参实体
     * @param lang 语言
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getHqjfxxList(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParmTYyxtJfglHzfjfhqxxb parmTYyxtJfglHzfjfhqxxb = new ParmTYyxtJfglHzfjfhqxxb();
        parmTYyxtJfglHzfjfhqxxb.setZh(param.getZh());
        parmTYyxtJfglHzfjfhqxxb.setHqjfStart(param.getStarttime());
        parmTYyxtJfglHzfjfhqxxb.setHqjfEnd(param.getEndtime());
        parmTYyxtJfglHzfjfhqxxb.setCurrPage(param.getCurrPage());
        parmTYyxtJfglHzfjfhqxxb.setPageSize(param.getPageSize());
        page = zwjfglCorsService.getHzfJfhqmxPagination(parmTYyxtJfglHzfjfhqxxb, lang);
        List<ViewTYyxtJfglHzfjfhqxxb> jfglHzfjfhqxxbs = (List<ViewTYyxtJfglHzfjfhqxxb>) page.getData();
        List<ViewJfxxList> jfxxList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(jfglHzfjfhqxxbs)) {
            for (ViewTYyxtJfglHzfjfhqxxb hqxxb : jfglHzfjfhqxxbs) {
                ViewJfxxList hqJf = new ViewJfxxList();
                hqJf.setBz(hqxxb.getBz());
                hqJf.setJfz(String.valueOf(hqxxb.getFz()));
                hqJf.setRq(DateUtils.format(hqxxb.getHqrq()));
                hqJf.setXwDesc(hqxxb.getJfhqxwDesc());
                hqJf.setXw(hqxxb.getJfhqxw());
                jfxxList.add(hqJf);
            }
            zyhyPage.setData(jfxxList);
            zyhyPage.setTotal(page.getTotal());
        }

        return zyhyPage;

    }

    /**
     * getZcjfxxList,跨库（积分平台）获取积分支出明细. <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年11月28日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年11月28日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 传参实体
     * @param lang 语言
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getZcjfxxList(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParmTYyxtJfglHzfjfzcxxb parmTYyxtJfglHzfjfzcxxb = new ParmTYyxtJfglHzfjfzcxxb();
        parmTYyxtJfglHzfjfzcxxb.setZcjfStart(param.getStarttime());
        parmTYyxtJfglHzfjfzcxxb.setZcjfEnd(param.getEndtime());
        parmTYyxtJfglHzfjfzcxxb.setZh(param.getZh());
        parmTYyxtJfglHzfjfzcxxb.setCurrPage(param.getCurrPage());
        parmTYyxtJfglHzfjfzcxxb.setPageSize(param.getPageSize());
        page = zwjfglCorsService.getHzfJfZcmxPagination(parmTYyxtJfglHzfjfzcxxb, lang);
        List<ViewTYyxtJfglHzfjfzcxxb> jfzcList = (List<ViewTYyxtJfglHzfjfzcxxb>) page.getData();
        List<ViewJfxxList> zcjfList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(jfzcList)) {
            for (ViewTYyxtJfglHzfjfzcxxb jfzcxxb : jfzcList) {
                ViewJfxxList zcJf = new ViewJfxxList();
                zcJf.setBz(jfzcxxb.getBz());
                zcJf.setJfz(String.valueOf(jfzcxxb.getFz()));
                zcJf.setRq(DateUtils.format(jfzcxxb.getZcrq()));
                zcJf.setXw(jfzcxxb.getJfzcfs());
                zcJf.setXwDesc(jfzcxxb.getJfzcfsDesc());
                zcjfList.add(zcJf);
            }
            zyhyPage.setData(zcjfList);
            zyhyPage.setTotal(page.getTotal());
        }

        return zyhyPage;
    }

    /**
     * getHzfJftjar,(合作方积分统计（按日）). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月5日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月5日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 参数
     * @return page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getHzfJftjar(ParamJfxxList param) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParamJfglxx paramJfglxx = new ParamJfglxx();
        paramJfglxx.setCurrPage(param.getCurrPage());
        paramJfglxx.setEndtime(param.getEndtime());
        paramJfglxx.setStarttime(param.getStarttime());
        paramJfglxx.setZh(param.getZh());
        paramJfglxx.setPageSize(param.getPageSize());
        page = zwjfglCorsService.getHzfJftjar(paramJfglxx);
        List<ViewJftjar> hzfjftjars = (List<ViewJftjar>) page.getData();
        List<ViewJfxxList> jfList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(hzfjftjars)) {
            for (ViewJftjar tYyxtTjHzfjftjar : hzfjftjars) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setRq(tYyxtTjHzfjftjar.getTjrq());
                jfxx.setHqjf(String.valueOf(tYyxtTjHzfjftjar.getHqjf()));
                jfxx.setZcjf(String.valueOf(tYyxtTjHzfjftjar.getZcjf()));
                jfList.add(jfxx);
            }
            zyhyPage.setData(jfList);
            zyhyPage.setTotal(page.getTotal());
        }
        return zyhyPage;
    }

    /**
     * getHzfJftjaxw,(合作方积分统计（按行为）). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月5日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月5日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 参数
     * @param lang 语言
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getHzfJftjaxw(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParamJfglxx paramJfglxx = new ParamJfglxx();
        paramJfglxx.setCurrPage(param.getCurrPage());
        paramJfglxx.setPageSize(param.getPageSize());
        paramJfglxx.setStarttime(param.getStarttime());
        paramJfglxx.setEndtime(param.getEndtime());
        paramJfglxx.setZh(param.getZh());
        paramJfglxx.setXw(param.getXw());
        page = zwjfglCorsService.getHzfJftjaxw(paramJfglxx, lang);
        List<Viewjftjaxw> jftjaxwList = (List<Viewjftjaxw>) page.getData();
        List<ViewJfxxList> jfList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(jftjaxwList)) {
            for (Viewjftjaxw viewjftjaxw : jftjaxwList) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setRq(DateUtils.format(viewjftjaxw.getTjrq()));
                jfxx.setJfz(viewjftjaxw.getJfz());
                jfxx.setXw(viewjftjaxw.getXw());
                jfxx.setXwDesc(viewjftjaxw.getXwDesc());
                jfList.add(jfxx);
            }
            zyhyPage.setData(jfList);
            zyhyPage.setTotal(page.getTotal());
        }

        return zyhyPage;
    }

    /**
     * getXfzJftjar,(获取消费者积分统计（按日）). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月5日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月5日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 参数
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getXfzJftjar(ParamJfxxList param) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParamJfglxx paramJfglxx = new ParamJfglxx();
        paramJfglxx.setCurrPage(param.getCurrPage());
        paramJfglxx.setPageSize(param.getPageSize());
        paramJfglxx.setStarttime(param.getStarttime());
        paramJfglxx.setEndtime(param.getEndtime());
        paramJfglxx.setZh(param.getZh());
        page = zwjfglCorsService.getXfzJftjar(paramJfglxx);
        List<ViewJftjar> yhjftjarList = (List<ViewJftjar>) page.getData();
        List<ViewJfxxList> jfList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(yhjftjarList)) {
            for (ViewJftjar yhjftjar : yhjftjarList) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setRq(yhjftjar.getTjrq());
                jfxx.setHqjf(String.valueOf(yhjftjar.getHqjf()));
                jfxx.setZcjf(String.valueOf(yhjftjar.getZcjf()));
                jfList.add(jfxx);
            }
            zyhyPage.setData(jfList);
            zyhyPage.setTotal(page.getTotal());
        }
        return zyhyPage;
    }

    /**
     * getXfzJftjaxw,(获取消费者积分统计（按行为）). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月5日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月5日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     *
     * @param param 参数
     * @param lang 语言
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getXfzJftjaxw(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParamJfglxx paramJfglxx = new ParamJfglxx();
        paramJfglxx.setCurrPage(param.getCurrPage());
        paramJfglxx.setPageSize(param.getPageSize());
        paramJfglxx.setStarttime(param.getStarttime());
        paramJfglxx.setEndtime(param.getEndtime());
        paramJfglxx.setZh(param.getZh());
        paramJfglxx.setXw(param.getXw());
        page = zwjfglCorsService.getXfzJftjaxw(paramJfglxx, lang);
        List<Viewjftjaxw> jftjaxwList = (List<Viewjftjaxw>) page.getData();

        List<ViewJfxxList> jfList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(jftjaxwList)) {
            for (Viewjftjaxw viewjftjaxw : jftjaxwList) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setRq(DateUtils.format(viewjftjaxw.getTjrq()));
                jfxx.setJfz(viewjftjaxw.getJfz());
                jfxx.setXw(viewjftjaxw.getXw());
                jfxx.setXwDesc(viewjftjaxw.getXwDesc());
                jfList.add(jfxx);
            }
            zyhyPage.setData(jfList);
            zyhyPage.setTotal(page.getTotal());
        }
        return zyhyPage;
    }

    /**
     * getXfzJfhqxxList,(消费者积分获取明细). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月7日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月7日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数
     * @param lang 语言
     * @return Page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getXfzJfhqxxList(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParmTYyxtHyglHyjfhqxxb paHyjfhqxxb = new ParmTYyxtHyglHyjfhqxxb();
        paHyjfhqxxb.setZh(param.getZh());
        paHyjfhqxxb.setHqjfStart(param.getStarttime());
        paHyjfhqxxb.setHqjfEnd(param.getEndtime());
        paHyjfhqxxb.setPageSize(param.getPageSize());
        paHyjfhqxxb.setCurrPage(param.getCurrPage());
        page = zwjfglCorsService.getYhJfhqmxPagination(paHyjfhqxxb, lang);
        List<ViewTYyxtHyglHyjfhqxxb> list = (List<ViewTYyxtHyglHyjfhqxxb>) page.getData();
        List<ViewJfxxList> jfxxList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (ViewTYyxtHyglHyjfhqxxb jfhqxxb : list) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setBz(jfhqxxb.getBz());
                jfxx.setJfz(String.valueOf(jfhqxxb.getFz()));
                jfxx.setRq(DateUtils.format(jfhqxxb.getHqrq()));
                jfxx.setXw(jfhqxxb.getYhhqxw());
                jfxx.setXwDesc(jfhqxxb.getYhhqxwDesc());
                jfxxList.add(jfxx);
            }
            zyhyPage.setData(jfxxList);
            zyhyPage.setTotal(page.getTotal());
        }

        return zyhyPage;
    }

    /**
     * getXfzJfzcxxList,(消费者积分支出信息). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月7日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月7日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数
     * @param lang 语言
     * @return page
     * @since JDK 1.7
     */
    @SuppressWarnings("unchecked")
    public Page getXfzJfzcxxList(ParamJfxxList param, String lang) {
        Page zyhyPage = new Page();
        com.wdcloud.opcenter.common.utils.page.Page page = new com.wdcloud.opcenter.common.utils.page.Page();
        ParmTYyxtHyglHyjfzcxxb paramHyjfzcxxb = new ParmTYyxtHyglHyjfzcxxb();
        paramHyjfzcxxb.setZh(param.getZh());
        paramHyjfzcxxb.setZcjfStart(param.getStarttime());
        paramHyjfzcxxb.setZcjfEnd(param.getEndtime());
        paramHyjfzcxxb.setPageSize(param.getPageSize());
        paramHyjfzcxxb.setCurrPage(param.getCurrPage());
        page = zwjfglCorsService.getYhJfZcmxPagination(paramHyjfzcxxb, lang);
        List<ViewTYyxtHyglHyjfzcxxb> list = (List<ViewTYyxtHyglHyjfzcxxb>) page.getData();
        List<ViewJfxxList> jfxxList = new ArrayList<ViewJfxxList>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (ViewTYyxtHyglHyjfzcxxb jfzcxxb : list) {
                ViewJfxxList jfxx = new ViewJfxxList();
                jfxx.setBz(jfzcxxb.getBz());
                jfxx.setJfz(String.valueOf(jfzcxxb.getFz()));
                jfxx.setRq(DateUtils.format(jfzcxxb.getZcrq()));
                jfxx.setXw(jfzcxxb.getYhzcxw());
                jfxx.setXwDesc(jfzcxxb.getYhzcxwDesc());
                jfxxList.add(jfxx);
            }
            zyhyPage.setData(jfxxList);
            zyhyPage.setTotal(page.getTotal());
        }
        return zyhyPage;
    }

    /**
     * 
     * getWdjfmxGroupByRq,(获取我的积分明细(根据日期分组)). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年12月20日 <br/>
     * =============================================================== <br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2016年12月20日 <br/>
     * Modify Description: <br/>
     * =============================================================== <br/>
     * 
     * @param zh 账号
     * @param lang 语言
     * @return 积分明细
     * @throws ParseException 异常
     * @since JDK 1.7
     */
    public LinkedHashMap<String, List<ViewJfmxZyhj>> getWdjfmxGroupByRq(String zh, String lang) throws ParseException {
        LinkedHashMap<String, List<ViewJfmx>> link = zwjfglCorsService.getWdjfmxGroupByRq(zh, lang);
        LinkedHashMap<String, List<ViewJfmxZyhj>> hashMap = new LinkedHashMap<String, List<ViewJfmxZyhj>>();
        if (link != null && !link.isEmpty()) {
            Iterator<String> keyIt = link.keySet().iterator();
            while (keyIt.hasNext()) {
                String key = keyIt.next();
                List<ViewJfmx> list = link.get(key);
                List<ViewJfmxZyhj> ls = new ArrayList<ViewJfmxZyhj>();
                for (ViewJfmx viewJfmx : list) {
                    ViewJfmxZyhj v0 = new ViewJfmxZyhj();
                    CommonConstants.copyProperties(v0, viewJfmx);
                    ls.add(v0);
                }
                hashMap.put(key, ls);
            }
        }
        return hashMap;
    }

    /**
     * 
     * getWdjfMxGroupByMonth,(获取我的积分明细(根据月份分组)). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2017年1月9日 <br/>
     * ===============================================================<br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2017年1月9日 <br/>
     * Modify Description:  <br/>
     * ===============================================================<br/>
     * @param zh 账号
     * @param lang 语言
     * @return
     * @throws ParseException
     * @since JDK 1.7
     */
    public LinkedHashMap<String, LinkedHashMap<String, List<ViewJfmxZyhj>>> getWdjfMxGroupByMonth(String zh, String lang) throws ParseException {

        LinkedHashMap<String, LinkedHashMap<String, List<ViewJfmxZyhj>>> link = new LinkedHashMap<String, LinkedHashMap<String, List<ViewJfmxZyhj>>>();
        List<ViewJfmx> ls = zwjfglCorsService.getWdjfMx(zh, lang);
        SimpleDateFormat formatM = new SimpleDateFormat("yyyy-MM");
        SimpleDateFormat formatD = new SimpleDateFormat("yyyy-MM-dd");
        if (CollectionUtils.isNotEmpty(ls)) {
            for (ViewJfmx viewJfmx : ls) {
                Date time = viewJfmx.getJfrq();
                String month = formatM.format(time);
                String day = formatD.format(time);
                if (link.containsKey(month)) {
                    LinkedHashMap<String, List<ViewJfmxZyhj>> dayLink = link.get(month);
                    if (dayLink.containsKey(day)) {
                        List<ViewJfmxZyhj> dayList = dayLink.get(day);
                        ViewJfmxZyhj view = new ViewJfmxZyhj();
                        CommonConstants.copyProperties(view, viewJfmx);
                        dayList.add(view);
                    } else {
                        List<ViewJfmxZyhj> dayList = new ArrayList<ViewJfmxZyhj>();
                        ViewJfmxZyhj view = new ViewJfmxZyhj();
                        CommonConstants.copyProperties(view, viewJfmx);
                        dayList.add(view);
                        dayLink.put(day, dayList);
                    }
                } else {
                    LinkedHashMap<String, List<ViewJfmxZyhj>> monthLink = new LinkedHashMap<String, List<ViewJfmxZyhj>>();
                    List<ViewJfmxZyhj> dayList = new ArrayList<ViewJfmxZyhj>();
                    ViewJfmxZyhj view = new ViewJfmxZyhj();
                    CommonConstants.copyProperties(view, viewJfmx);
                    dayList.add(view);
                    monthLink.put(day, dayList);
                    link.put(month, monthLink);
                }

            }
        }

        return link;
    }

    /**
     * 
     * getJfxx,(获取积分信息，包含可用和过期积分). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年12月21日 <br/>
     * ===============================================================<br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2016年12月21日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param zh 账号
     * @param yhlx 用户类型
     * @return 积分信息
     * @since JDK 1.7
     */
    public ResultJson getJfxx(String zh, String yhlx) {
        com.wdcloud.opcenter.common.utils.ResultJson rJson = zwjfglCorsService.getJfxx(zh, yhlx);
        ResultJson json = new ResultJson();
        CommonConstants.copyProperties(json, rJson);
        List<ErrorBean> blistBeans = rJson.getErrorList();
        List<com.vviton.zyhj.common.utils.ErrorBean> beans = new ArrayList<com.vviton.zyhj.common.utils.ErrorBean>();
        if (CollectionUtils.isNotEmpty(blistBeans)) {
            for (ErrorBean errorBean : blistBeans) {
                com.vviton.zyhj.common.utils.ErrorBean bean = new com.vviton.zyhj.common.utils.ErrorBean();
                CommonConstants.copyProperties(bean, errorBean);
                beans.add(bean);
            }
        }
        json.setErrorList(beans);
        json.setObject(rJson.getObject());
        json.setObjects(rJson.getObjects());
        return json;
    }

    /**
     * 
     * getCzzLv,(获取用户成长值和等级信息). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年12月21日 <br/>
     * ===============================================================<br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2016年12月21日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param zh 账号
     * @return 用户成长值和等级信息
     * @since JDK 1.7
     */
    public ViewCzzLvZyhj getCzzLv(String zh) {
        ViewCzzLv viewCzzLv = czzglCorsService.getCzzLv(zh);
        ViewCzzLvZyhj vZyhj = new ViewCzzLvZyhj();
        CommonConstants.copyProperties(vZyhj, viewCzzLv);
        return vZyhj;
    }
}
